/*
 * memheap.h
 *
 *  Created on: 2022年10月28日
 *      Author: hello
 */

#ifndef MEMHEAP_H_
#define MEMHEAP_H_

#ifdef __cplusplus
extern "C" {
#endif

#include <stdint.h>

/**********************************************************************************
 * 移植修改区
 */

#define MEMHEAP_STATS                  /* 内存信息使能控制 */

#define MH_ALIGN_SIZE          4       /* 4字节对其 */
#define MEMHEAP_SIZE           8192    /* 内存堆大小8K */
#define MEMHEAP_BLOCK_MIN_SIZE 16      /* 最小内存块 */


/**********************************************************************************
 * API导出
 */

void memheap_init(void);
void *memheap_malloc(size_t size);
void memheap_free(void *rmem);
void *memheap_realloc(void *rmem, size_t newsize);
void *memheap_calloc(size_t count, size_t size);

#ifdef MEMHEAP_STATS
void memheap_info(uint32_t *total, uint32_t *used, uint32_t *max_used);
#endif

#ifdef __cplusplus
}
#endif

#endif /* MEMHEAP_H_ */
